This invention relates to a linear interpolation control device for an industrial articulated robot.
Articulated robots are compact and can be readily operated at high speed, when compared with other robots. However, it is difficult to perform the interpolation function accurately and economically.
In a cartesian coordinates robot, interpolation outputs in the orthogonal coordinate system (X, Y, Z) may be applied directly to drive axes X, Y and Z. On the other hand, an articulated robot needs intricate coordinate transformation between the articulation drive axes and the orthogonal coordinates in addition to the interpolation in the orthogonal coordinate system. In order to quickly and accurately perform interpolation calculations including the intricate coordinate transformation during the operation of the robot, it is necessary to use an expensive device such as a minicomputer. However, a minicomputer-operated robots have not been practically used yet, because they are not economical as an industrial articulated robot.
An approximate calculation method has been proposed in order to simplify the arithmetic operations; however, it is not practical because of large interpolation errors.
For an articulated robot of teaching playback type, an interpolation in which one pulse increment is applied to each drive axis for every reference clock pulse is not always necessary in a linear interpolation between two points taught, because, in the case where the distance between two points taught is short, it is moved directly with sufficiently high accuracy if uniform pulse distribution (simultaneous start and simultaneous stop method) is effected for the articulation drive axes so that the axes are moved at specified speeds.
That is, an interpolation control, in which interpolation errors can be neglected, can be achieved by employing the following method: The distance between two points taught is divided into segments of a length defined by a command velocity, an interpolation time interval and the distance between the two points. The incremental pulse numbers or increments of motion along each axis during each interpolation of the articulation drive axes, which correspond to each of the segments, are subjected to interpolation calculation, and BRMs (binary rate multipliers) are used to subject the incremental pulse numbers to uniform pulse distribution with respect to time.
When compared with a conventional linear interpolator using an expensive device such as a minicomputer to perform interpolation each pulse increment, this invention is advantageous in that it can be realized merely by adding some hardware such as BRMs to an inexpensive arithmetic unit because, in this invention, segment interpolation is employed and no trouble is caused even if it takes a relatively long period of time to achieve the interpolation calculation, including the coordinate transformation.
In the linear interpolation, it is necessary not only to directly move the tip of the gun connected to the robot wrist, but also to control the posture of the gun simultaneously. The posture of the gun is determined according to the contents of work and the kinds of work. For instance in the case of a welding robot, the posture of the gun, which is defined by a torch angle, an advancing angle, etc. must be maintained constant so that the posture causes no trouble in the welding operation.
In the case when a linear interpolation distance is short and it is necessary to abruptly change the posture of the wrist (or the gun), for instance, at a corner, if interpolation is carried out with the number of segments for every reference clock pulse as a reference, then the amount of movement of the wrist every reference clock pulse is excessively large, and sometimes it may exceed the maximum number of revolutions per minute of a wrist drive motor. This trouble is significant in the extreme case where the position of the tip of the gun is maintained nearly unchanged, i.e., the linear interpolation distance is substantially zero, and only the wrist is moved.
However, this problem can be solved by employing the following method: In the case where the amount of movement of the wrist axes does not exceed the maximum number of revolutions per minute of the drive motor, interpolation is effected with the number of segments for every reference clock pulse as reference, and the posture of the wrist is controlled so that it is uniformly changed between two points. In the case where the amount of movement of the wrist axes exceeds the maximum number of revolutions per minute of the motor, interpolation is carried out by changing the number of segments for every reference clock so that the amount of movement of the wrist axes for every reference clock pulse satisfies the maximum number of revolutions per minute of the motor.
The problem of stopping which occurs at a turning point between linear interpolations, can be solved by an advanced read calculation and a two-stage buffer pulse outputting method.